package io;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

/**
 * 对象流
 * java.io.ObjectOutputStream和ObjectInputStream
 *
 * 对象流可以进行对象的序列化与反序列化
 * 对象序列化:将一个对象转换为一组可以用于保存或网络传输的字节的过程
 */
public class OOSDemo {
    public static void main(String[] args) throws IOException {
        //需求:将Person对象写入文件person.obj中保存
        String name = "张麒";
        int age = 18;
        char gender = '男';
        String[] otherInfo ={"南通","技术好","白"};
        Person person = new Person(name,age,gender,otherInfo);
        System.out.println(person);

        FileOutputStream fos = new FileOutputStream("person.obj");
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        //对象流在进行对象序列化时，要求对象的类必须实现Serializable接口，否则会抛出NotSerializableException异常
        oos.writeObject(person);
        System.out.println("写出完毕");
        oos.close();


    }
}








